<?php 

namespace View;
//Klass som skapar allt som användaren ser och hanterar indata.

class LoginView {
	
	private $m_username = 'username';
	private $m_password = 'password';
	private $m_login = 'login';
	private $m_logout = 'logout';
	private $m_keepLogged = 'keepLogged';
	private $m_loginButton = "loginbutton";
	
	// Konstanter med meddelanden som skall kunna visas för användaren
	const LOGGED_IN_MESSAGE = "Välkommen";
	const LOGGED_OUT_MESSAGE = "Du är utloggad";
	const ERROR_MESSAGE = "Fel inloggninsuppgifer";
	
	/**
	 * Skapar ett inloggningsformulär
	 * @param String $message meddelande som skall skrivas ut till användaren
	 */
	public function CreateLoginBox($message) {
		
		return "	
			<div id='loginbox'>
				<div id='message'>$message</div>	
					<form method='post' class='form-inline'>			
						<input type='text' name=$this->m_username id='username' placeholder='Username' class='input-small' />
						
						<input type='password' name=$this->m_password id='password' placeholder='Password' class='input-small' />
						
						<input type='submit' name=$this->m_login class='btn btn-info' value='Logga in' />					
						
						<input type='checkbox' class='checkbox' name=$this->m_keepLogged value=$this->m_keepLogged />
						<label for='keepLogged' class='checkbox'>Håll mig inloggad</label>
						
					</form>	
			</div>			
		"		
		;
	}
	
	/**
	 * Skapar ett utloggningsformulär
	 * @param String $message meddelande som skall skrivas ut till användaren
	 */
	public function CreateLogoutBox($message, $currentUsername){
		return "
			<div id='logoutbox'>
				<div id='loggedInMessage'>$message, $currentUsername</div>
				<form method='post' class='form-inline'>
					<input type='submit' class='btn btn-info' name=$this->m_logout value='Logga ut' />					
				</form>		
			</div>
		"
		;
	}	
	
	/**
	 * Skapar knappen för att skicka formuläret
	 */
	public function CreateLoginButton(){
		return "
				<form method='post'>
					<input type='submit' name='$this->m_loginButton' value='Logga in' />
				</form>
		"
		;
	}
	
	/**
	 * Funktion som kontrollerar ifall det står något i arrayen _POST på posten username och returnerar det värdet. Annars returneras null
	 */
	public function GetUserName(){
		
		if(isset($_COOKIE[$this->m_username])){
			return $_COOKIE[$this->m_username];
			
		}
		else if(isset($_POST[$this->m_username])){
			return $_POST[$this->m_username];
		}
		else{
			return null;
		}
	}
	
	/**
	 * Funktion som kontrollerar ifall det står något i arrayen _POST på posten password och returnerar det värdet. Annars returneras null
	 */
	public function GetPassword(){
		if(isset($_COOKIE[$this->m_password])){
			return $_COOKIE[$this->m_password];
		}			
		
		else if(isset($_POST[$this->m_password]) == true){
			return $_POST[$this->m_password];
		}
		else{
			return null;
		}
	}
	
	/**
	 * Funktion som kontrollerar om användaren har klickat på login-knappen
	 */
	public function TriedToLogIn(){
		if(isset($_COOKIE[$this->m_username])){
			return true;
		}
		else{
			return isset ($_POST[$this->m_login]);
		}
		
	}
	
	/**
	 * Funktion som kontrollerar om användaren har klickat på logout-knappen
	 */
	public function TriedToLogOut(){
		return isset ($_POST[$this->m_logout]);		
	}
	
	/**
	 * Kontrollerar om användaren vill fortsätta att vara inloggad efter att användaren har stängt sin webbläsare
	 */
	public function KeepLoggedIn(){
		return isset ($_POST[$this->m_keepLogged]);
	}
	
	/**
	 * Funktion som skapar en cookie med användarnamn och lösenord.
	 * @param String $username användarnamn
	 * @param String $password lösenord
	 */
	public function CreateCookie($username, $password){
		setcookie($this->m_username, $username, time() + 1800);
		setcookie($this->m_password, $password, time() + 1800);
	}
	
	/**
	 * Tar bort en cookie
	 */
	public function DestroyCookie(){
		setcookie($this->m_username, "", time() - 3600);
		setcookie($this->m_password, "", time() - 3600);
	}		
	
	/**
	 * Funktion som kontrollerar om det finns någon cookie
	 */
	public function FindCookie(){
		return isset($_COOKIE[$this->m_username]);
	}
}
